
/**
 * 联系人列表条目
 * 
 * 联系人不单只是好友也包含了其他类型的“联系人”
 * 这里做一类简单的区分：
 *    1、微信内置工具类联系人，userName有如下：['floatbottle', 'fmessage', 'filehelper', 'qmessage', 'weixin','notifymessage','brandsessionholder']
 *    2、群聊：userName以 @chatroom 结尾
 *    3、服务号：userName以gh_开头，后加12个数字或字母，比如：gh_02d9d8be6ed9
 *    4、OPENIM，userName以 @openim 结尾，似乎是企微好友？
 *    5、其余的是群聊内的人或者好友
 * 
 * @description
 * @export
 * @interface IRawContactItem
 */
export interface IRawContact {
  /**
   * 联系人微信号
   *
   * @description
   *    虽然都叫与alias一样，都叫微信号，
   *    具体说明见alias
   * @description
   * 联系人不单只是好友也包含了其他类型的“联系人”
   * 这里做一类简单的区分：
   *    1、微信内置工具类联系人，userName有如下：['floatbottle', 'fmessage', 'filehelper', 'qmessage', 'weixin','notifymessage','brandsessionholder']
   *    2、群聊：userName以 '@chatroom' 结尾
   *    3、服务号：userName以gh_开头，后加12个数字或字母，比如：gh_02d9d8be6ed9
   *    4、OPENIM，userName以 '@openim' 结尾，似乎是企微好友？
   *    5、其余的是群聊内的人或者好友
   *d
   * @see {alias}
   * @type {string}
   * @memberof IRawContactItem
   */
  userName: string;

  /**
   * 联系人微信号
   *
   * @description
   *    虽然都叫与userName一样，都叫微信号，但alias字段可能为空
   *
   *    情况1：手机微信中显示该用户微信号为Kwan1119
   *    ``` json
   *      {
   *        "userName": "Kwan1119",
   *        "alias": "",
   *        "remark": "xxx",
   *        "nickName": "xxx",
   *        "isFriend": true
   *      }
   *    ```
   *
   *    情况2：手机微信中显示该用户微信号为gz_fei，此时userName也存在
   *    ``` json
   *      {
   *        "userName": "wxid_1isuxgliermy21",
   *        "alias": "gz_fei",
   *        "remark": "xxx",
   *        "nickName": "xxx",
   *        "isFriend": true
   *      }
   *    ```
   *
   * @type {string}
   * @memberof IRawContactItem
   */
  alias: string;

  /**
   * 联系人备注名
   *
   * @type {string}
   * @memberof IRawContactItem
   */
  remark: string;

  /**
   * 联系人昵称
   *
   * @type {string}
   * @memberof IRawContactItem
   */
  nickName: string;

  /**
   * 是否好友
   *
   * @description
   *    目前似乎并不准确，一些群里的人也存在于联系人列表中，但实际并非好友，
   *    而isFriend却是true
   * @type {boolean}
   * @memberof IRawContactItem
   */
  isFriend: boolean;

  account?: string;

  src?: any;

  phone?: string;
  
  index?: number;
}

